//This is an abstract class that should be subclassed
//to allow basic timer functionality in the Helix application

#ifndef _HELIX_TIMER_H_
#define _HELIX_TIMER_H_

#include "Helix.h"


namespace helix		//Put this in the helix namespace
{

	#define H_DEFAULT_DSECONDS 1.0/60.0		//a default time between frames is 1/60th of a second
											//update will use this value if no timer object is set
											//for the application object

	class MY_CLASS Timer
	{
	public:
		virtual ~Timer()
		{
		}

		virtual long int resolution()=0;	//get the ticks per second of the timer
		virtual long int lastTime()=0;		//get the number of ticks of the timer of the last update
		virtual long int thisTime()=0;		//get the current number of ticks of the timer

		virtual void updateTime()=0;		//update the timer and calculate the time difference between now and the last update
		virtual double dSeconds()=0;		//get the time difference between the last two updates in seconds
	};

}  //End the helix namespace

#endif